165
165
< p > This Working Draft is an update of the < a href ="/TR/2012/NOTE-microdata-rdf-20121009/ "> W3C
166
166
Interest Group Notea > , published in October 2012.
167
167
< span >
168
- This update adds ...
168
+ XXX
169
169
span >
170
170
The intention is to publish
171
171
this draft as a new version of the Interest Group Note after gathering and incorporating community input.
@@ -181,12 +181,12 @@
Introduction
181
181
< p > There are a variety of ways in which a mapping from microdata to
182
182
RDF might be configured to give a result that is closer to the required result for a particular vocabulary.
183
183
This specification defines terms that can be used as hooks for
184
- optional vocabulary-specific behavior, which could be defined within a
185
- < a > registrya > or on an implementation-defined basis. However, the
184
+ vocabulary-specific behavior, which could be defined within a
185
+ < a > registrya > or on an implementation-defined basis. < span class =" strike " > However, the
186
186
HTML Data TF recommends the adoption of a single method of mapping in
187
- which every vocabulary is treated as if:
187
+ which every vocabulary is treated as if:span >
188
188
p >
189
- < ul >
189
+ < ul class =" strike " >
190
190
< li > < a > < code > propertyURIcode > a > is set to < code > vocabularycode > li >
191
191
< li > < a > < code > multipleValuescode > a > is set to < code > unorderedcode > li >
192
192
ul >
@@ -234,7 +234,7 @@
Background
234
234
the microdata specification. This specification highlights where such
235
235
violations occur and the reasons for them.p >
236
236
237
- < p > This specification optionally allows for
237
+ < p > This specification allows for
238
238
< a > vocabularya > -specific rules that affect the generation of property URIs and value serializations.
239
239
This is facilitated by a < a > registrya > that associates URIs with specific rules based on matching
240
240
< a class ="aref "> itemtypea > values against registered URI prefixes do determine a vocabulary and potentially
@@ -322,11 +322,15 @@
Issues
322
322
particular candidate.
323
323
p >
324
324
< p class ="issue " data-number ="10 ">
325
- Make use of the < a href ="#vocab_expansion "> Vocabulary Expansiona > , and
326
- < a href ="#vocabulary-entailment "> Vocabulary Entailmenta >
327
- conditional on a runtime option.
328
- < a > < code > propertyURIcode > a > defaults to < a > vocabularya > if there is an < a class ="aref "> itemtypea > and
329
- < code > multipleValuescode > defaults to < strong > falsestrong > , where values are never placed in an < code > rdf:List.code >
325
+ Remove support for < code > contextualcode >
326
+ < a > < code > propertyURIcode > a > and < code > mulitpleValuescode > . This issue proposes to
327
+ remove support for independently setting
328
+ < a > < code > propertyURIcode > a > and < a > < code > multipleValuescode > a > .
329
+ The former < a > < code > propertyURIcode > a >
330
+ is treated like the former < a > vocabularya > scheme if
331
+ there is an < a class ="aref "> itemtypea > , otherwise, like < code > contextualcode > creating a property
332
+ as a fragment of the document base.
333
+ The former < code > multipleValuescode > is treated like false, where values are never placed in an < code > rdf:List.code >
330
334
p >
331
335
< p class ="issue " data-number ="11 ">
332
336
Use full RDFa Entailment if < code > vocab_expansioncode > option given.
@@ -461,7 +465,7 @@
Attributes and Syntax
461
465
462
466
< section class ="informative ">
463
467
< h1 > Vocabulary Registryh1 >
464
- < p class ="note "> The registry is controlled by a processor option (see < a href ="#issues "> issue 10a > ).p >
468
+ < p class ="note "> ( The registry is being considered for revision (see < a href ="#issues "> issue 10a > ).p >
465
469
< p > In a perfect world, all processors would be able to generate the same output for a given input
466
470
without regards to the requirements of a particular < a > vocabularya > . However, microdata doesn't
467
471
provide sufficient syntactic help in making these decisions. Different vocabularies have different
@@ -475,8 +479,6 @@
Vocabulary Registry
475
479
623
626
pre >
624
627
< p > In this example, assuming no matching entry in the < a > registrya > ,
625
628
the < a > URI prefixa > is constructed by removing the
626
629
< cite > < a href ="http://tools.ietf.org/html/rfc3986#section-3.3 "> last path segmenta > cite > , leaving the URI
627
- < code > http://schema .org/code > . As there is no explicit < a > < code > propertyURIcode > a > ,
628
- the default < code > vocabularycode > is used, and the resulting property URI would be
629
- < code > http://schema .org/titlecode > .p >
630
+ < code > http://example .org/code > . < span class =" strike " > As there is no explicit < a > < code > propertyURIcode > a > ,
631
+ the default < code > vocabularycode > is used, andspan > The resulting property URI would be
632
+ < code > http://example .org/titlecode > .p >
630
633
631
634
< div >
632
635
< p > If there is no in-scope < a class ="aref "> itemtypea > , property URIs are generated
@@ -667,8 +670,9 @@
Just a Geek
667
670
668
671
section >
669
672
670
- < section class ="informative ">
673
+ < section class ="informative strike ">
671
674
< h2 > Value Orderingh2 >
675
+ < p class ="note "> (Value Ordering is being considered for removal (see < a href ="#issues "> issue 10a > ).
672
676
< p > For items having multiple values for a given < a > propertya > ,
673
677
the < dfn > < code > multipleValuescode > dfn > rule defines the algorithm for serializing these values.
674
678
Microdata uses document order when generating < a title ="property value "> property valuesa > , as defined in
@@ -744,6 +748,9 @@
Value Typing
744
748
745
749
< section >
746
750
< h2 id ="vocab_expansion "> Vocabulary Expansionh2 >
751
+ < p class ="note "> Support for the registry is
752
+ being amended
753
+ (see < a href ="#issues "> issue 10a > ).p >
747
754
< p > Microdata requires that all values of < a class ="aref "> itemtypea > come from the same vocabulary. This
748
755
is required as < a class ="aref "> itempropa > values are resolved relative to that vocabulary. However,
749
756
it is often useful to define an < a > itema > to have types from multiple different vocabularies.p >
@@ -782,15 +789,11 @@
Vocabulary Expansion
782
789
@prefix rdfs: .
783
790
@prefix schema: .
784
791
785
- <> rdfa:usesVocabulary schema: .
786
-
787
792
[ a schema:Person;
788
793
schema:additionalType foaf:Person;
789
794
schema:email ;
790
795
foaf:mbox
791
796
] .
792
-
793
- schema:additionalType rdfs:subPropertyOf rdf:type .
794
797
-->
795
798
pre >
796
799
@@ -810,8 +813,6 @@
Vocabulary Expansion
810
813
schema:email ;
811
814
foaf:mbox
812
815
] .
813
-
814
- schema:additionalType rdfs:subPropertyOf rdf:type .
815
816
-->
816
817
pre >
817
818
section >
@@ -949,7 +950,7 @@
Algorithm Terms
949
950
< dt > < dfn > memorydfn > dt > < dd >
950
951
a mapping of items to subjects, initially empty;
951
952
dd >
952
- < dt > < dfn > current namedfn > dt > < dd >
953
+ < dt class =" strike " > < dfn > current namedfn > dt > < dd class =" strike " >
953
954
an < a > absolute URLa > for the in-scope < a > namea > , used for generating URIs
954
955
for properties of items without an < a > item typea > ;
955
956
< div class ="note ">
@@ -1247,7 +1248,7 @@
RDF Conversion Algorithm
1247
1248
algorithm generates:p >
1248
1249
1249
1250
< ol class ="algorithm ">
1250
- < li > For each element that is also a < a > top-level itema > run the following algorithm:
1251
+ < li > For each element that is also a < a > top-level itema > < span class =" strike " > run the following algorithmspan > :
1251
1252
< ol class ="algorithm ">
1252
1253
< li >
1253
1254
< a href ="#generate-the-triples "> Generate the triplesa > for an item < em > itemem > , using the
@@ -1317,7 +1318,7 @@
Generate the triples
1317
1318
< code > < cite > < a href ="http://www.w3.org/TR/2013/NOTE-microdata-20131029/#dom-itemtype "> element.itemTypea > cite > code >
1318
1319
of the element defining the < a > itema > .
1319
1320
li >
1320
- < li > If < em > typeem > is an < a > absolute URLa > , set < a > current namea > in
1321
+ < li class =" strike " > If < em > typeem > is an < a > absolute URLa > , set < a > current namea > in
1321
1322
< a > evaluation contexta > to null.li >
1322
1323
< li >
1323
1324
Otherwise, set < em > typeem > to < a > current typea > from
@@ -1341,14 +1342,14 @@
Generate the triples
1341
1342
< li > Otherwise, if type is not empty, construct < em > vocabem > by removing everything following the last
1342
1343
SOLIDUS U+002F ("/") or NUMBER SIGN U+0023 ("#") from the < em > pathem > component of < em > typeem > .li >
1343
1344
< li > Update < a > evaluation contexta > setting < a > current vocabularya > to < em > vocabem > .li >
1344
- < li >
1345
+ < li class =" strike " >
1345
1346
Set < em > property listem > to an empty array mapping properties to one or more
1346
1347
< em > valuesem > as established below.
1347
1348
li >
1348
1349
< li >
1349
1350
For each element < em > elementem > that has one or more < a > property namesa > and is one of the
1350
- < a title ="item properties "> properties of the itema > < em > itemem > , in the order those elements
1351
- are given by the algorithm that returns the < a title ="item properties "> properties of the itema > ,
1351
+ < a title ="item properties "> properties of the itema > < em > itemem > < span class =" strike " > , in the order those elements
1352
+ are given by the algorithm that returns the < a title ="item properties "> properties of the itema > ,span >
1352
1353
run the following substep:
1353
1354
< ol class ="algorithm ">
1354
1355
< li >
@@ -1361,7 +1362,7 @@
Generate the triples
1361
1362
< li >
1362
1363
Let < em > predicateem > be the result of < a href ="#generate-predicate-uri "> generate predicate URIa >
1363
1364
using < em > contextem > and < em > nameem > .
1364
- Update < em > contextem > by setting < a > current namea > to < em > predicateem > .
1365
+ < span class =" strike " > Update < em > contextem > by setting < a > current namea > to < em > predicateem > span > .
1365
1366
li >
1366
1367
< li >
1367
1368
Let < em > valueem > be the < a > property valuea > of < em > elementem > .
@@ -1371,8 +1372,15 @@
Generate the triples
1371
1372
triplesa > for < em > valueem > using < em > contextem > . Replace < em > valueem > by the subject returned
1372
1373
from those steps.
1373
1374
li >
1374
- < li >
1375
- Add < em > valueem > to < em > property listem > for < em > predicateem > .
1375
+ < li > Generate the following triple:
1376
+ < dl class ="triple ">
1377
+ < dt > subjectdt >
1378
+ < dd > < em > subjectem > dd >
1379
+ < dt > predicatedt >
1380
+ < dd > < em > predicateem > dd >
1381
+ < dt > objectdt >
1382
+ < dd > < em > valueem > dd >
1383
+ dl >
1376
1384
li >
1377
1385
ol >
1378
1386
li >
@@ -1421,7 +1429,7 @@
Generate the triples
1421
1429
li >
1422
1430
ol >
1423
1431
li >
1424
- < li >
1432
+ < li class =" strike " >
1425
1433
For each < em > predicateem > in < em > property listem > :
1426
1434
< ol class ="algorithm ">
1427
1435
< li > < a href ="#generate-property-values "> Generate property valuesa > < em > subjectem > , < em > predicateem > and
@@ -1436,8 +1444,11 @@
Generate the triples
1436
1444
< section >
1437
1445
< h3 > Generate Predicate URIh3 >
1438
1446
< p > Predicate URI generation makes use of < a > current typea > ,
1439
- < a > current namea > , and < a > current vocabularya > from an < a > evaluation
1447
+ < a class =" strike " > current namea > , and < a > current vocabularya > from an < a > evaluation
1440
1448
contexta > < em > contextem > along with < em > nameem > .p >
1449
+ < p class ="note "> Support for the < code > contextualcode > < em > schemaem > is
1450
+ being considered for removal
1451
+ (see < a href ="#issues "> issue 10a > ).p >
1441
1452
1442
1453
< ol class ="algorithm ">
1443
1454
< li > If < em > nameem > is an < a > absolute URLa > , return < em > nameem >
@@ -1456,18 +1467,18 @@
Generate Predicate URI
1456
1467
< code > http://example.org/doc#titlecode > .
1457
1468
div >
1458
1469
li >
1459
- < li > Otherwise, if < a > current vocabularya > from < em > contextem >
1470
+ < li class =" strike " > Otherwise, if < a > current vocabularya > from < em > contextem >
1460
1471
is not null and < a > registrya > has an entry for < a > current vocabularya >
1461
1472
having a < a > propertyURIa > entry that is not null, set that as
1462
1473
< em > schemeem > . Otherwise, set < em > schemeem > to
1463
1474
< code > vocabularycode > .li >
1464
- < li id ="scheme-vocab "> If < em > schemeem > is < code > vocabularycode >
1475
+ < li id ="scheme-vocab "> < span class =" strike " > If < em > schemeem > is < code > vocabularycode > span >
1465
1476
set < em > expandedURIem > to the < a > URI referencea > constructed by
1466
1477
appending the < a > fragment-escapea > d value of < em > nameem > to < a > current
1467
1478
vocabularya > , separated by a U+0023 NUMBER SIGN character (#) unless the
1468
1479
< a > current vocabularya > ends with either a U+0023 NUMBER SIGN character
1469
1480
(#) or SOLIDUS U+002F (/).li >
1470
- < li id ="scheme-context "> Otherwise, if < em > schemeem > is
1481
+ < li class =" strike " id ="scheme-context "> Otherwise, if < em > schemeem > is
1471
1482
< code > contextualcode > , set < em > expandedURIem > to the < a > URI
1472
1483
referencea > constructed as follows:
1473
1484
< ol class ="algorithm ">
@@ -1483,7 +1494,7 @@
Generate Predicate URI
1483
1494
< em > nameem > . li >
1484
1495
ol >
1485
1496
li >
1486
- < li > If the < a > registrya > entry for < a > propertyURIa >
1497
+ < li class =" strike " > If the < a > registrya > entry for < a > propertyURIa >
1487
1498
has an < code > equivalentPropertycode > key,
1488
1499
generate the following triple using the
1489
1500
< em > valueem > of that key:
@@ -1497,7 +1508,7 @@
Generate Predicate URI
1497
1508
dl >
1498
1509
< p > If the value is an array, generate a triple for each value of that array.p >
1499
1510
li >
1500
- < li > If the < a > registrya > entry for < a > propertyURIa >
1511
+ < li class =" strike " > If the < a > registrya > entry for < a > propertyURIa >
1501
1512
has an < code > subPropertyOfcode > key, generate the following triple using the
1502
1513
< em > valueem > of that key:
1503
1514
< dl class ="triple ">
@@ -1514,9 +1525,11 @@
Generate Predicate URI
1514
1525
ol >
1515
1526
section >
1516
1527
1517
- < section >
1528
+ < section class =" strike " >
1518
1529
< h2 > Generate Property Valuesh2 >
1519
1530
< p > Property value serialization makes use of < em > subjectem > , < em > predicateem > and < em > valuesem > .p >
1531
+ < p class ="note "> Support for the per-vocabulary processing rules is being considered for removal
1532
+ (see < a href ="#issues "> issue 10a > ).p >
1520
1533
1521
1534
< ol class ="algorithm ">
1522
1535
< li > If the < a > registrya > contains a URI prefix that is a character for character match of
@@ -1569,16 +1582,19 @@
Generate Property Values
1569
1582
ol >
1570
1583
section >
1571
1584
1572
- < section id ="generate-collection ">
1585
+ < section class =" strike " id ="generate-collection ">
1573
1586
< h2 > Generate RDF Collectionh2 >
1587
+ < p class ="note "> Support for the registry, and therefore the generation of RDF Collections
1588
+ is being considered for removal
1589
+ (see < a href ="#issues "> issue 10a > ).p >
1574
1590
< p >
1575
1591
An < dfn > RDF Collectiondfn > is a mechanism for defining ordered sequences of objects in RDF (See < cite > < a
1576
1592
href ="http://www.w3.org/TR/rdf-syntax/#collections "> RDF Collectionsa > cite > in
1577
1593
[[!RDF-SCHEMA]]). As the RDF data-model is that of an unordered graph, a linking method using properties
1578
1594
< code > rdf:firstcode > and < code > rdf:next code > is required to be able to specify a particular order.
1579
1595
p >
1580
1596
< p >
1581
- In the microdata to RDF mapping, < a > RDF Collectiona > s are used when an item has more than one value
1597
+ In the microdata to RDF mapping, < a title =" RDF Collection " > RDF Collections a > are used when an item has more than one value
1582
1598
associated with a given property to ensure that the original document order is maintained. The following
1583
1599
procedure should be used to generate triples when an < a > itema > property has more than one value
1584
1600
(contained in < em > listem > ):
@@ -1661,7 +1677,7 @@
Markup Examples
1661
1677
pre >
1662
1678
1663
1679
< p > Assuming that < a > registrya > contains a an entry for < code > http://purl.org/vocab/frbr/core#code >
1664
- with < a > < code > propertyURIcode > a > set to < code > vocabularycode > ,
1680
+ < span class =" strike " > with < a > < code > propertyURIcode > a > set to < code > vocabularycode > ,span >
1665
1681
this is equivalent to the following Turtle:p >
1666
1682
< pre class ="example " data-transform ="updateExample ">
1667
1683
1805
1815
pre >
1806
1816
0 commit comments