We present Fresnel Forms, a plugin we developed for Protégé, an editor for Semantic Web ontologies. The Fresnel Forms plugin processes the currently active ontology in a Protégé session to export a semantic wiki for that ontology. This export uses Semantic MediaWiki’s XML-based export format for import into an existing wiki. Fresnel Forms also provides a GUI editor to let the user fine-tune the generated interface before exporting it to a wiki.
Fresnel Forms exports use features from Semantic MediaWiki and Semantic Forms to provide an annotate-and-browse data system interface. Each wiki Fresnel Forms generates provides forms for entering data for classes and fields that conform to the original ontology. Templates provide displays of pages created with these forms. Finally, the wiki’s ExportRDF feature creates Semantic Web triples for the data entered that use URI’s from the original ontology. Fresnel Forms provides thus an efficient way to create a wiki for populating a given Semantic Web ontology.
Fresnel Forms can be downloaded and installed on Protégé from http://is.cs.ou.nl/OWF/index.php5/Fresnel_Forms
3. Semantic Web tool history at SMWCon
• Fall 2010 Amsterdam
– Ontology and interface made in wiki with Forms
– Form: Semantic Friendly Forms extension
• Fall 2013 Berlin
– Process online ontology file into wiki
– Form: OWL Wiki Forms extension
• Fall 2015 Barcelona
– Edit ontology and interface style in GUI as Semantic Web
– Export to wiki
– Form: Protégé ontology editor plugin
Pagina 3
4. Fresnel Forms (FForms) in a nutshell
• Plugin for Protégé Semantic Web ontology editor
– Easy to download and install, open source in Java
– Download or edit Semantic Web ontology in Protégé
• FForms tab in Protégé
– Default wiki interface
– Edit interface: Forms and CSS
– Save as Fresnel for future adaptation
– Export as wiki XML with SMW and Semantic Forms
• Import to wiki
– Semantic Forms with ontology-derived interface assistance
– Export to RDF linked to source Semantic Web
Pagina 4
5. Why use FForms?
• You want your wiki to export RDF to a given ontology
– Just press a few buttons
• There is an ontology with a desired model for your wiki
– Just press a few buttons
• To extend an ontology for your wiki
– Edit with Protégé, then click buttons
• A Model-driven Development approach for your wiki
– Start with designing model (ontology)
– Design variations from default interface
Pagina 5
8. Default browser
• Property order not normalized
• Property display for type
• No tailored CSS
• Simple two-column table
Pagina 8
Wikipedia Fresnel Forms, default
9. Automating best property order for a box
• Compares algorithms for sorting ontology properties in browsers
• Wikipedia infoboxes are truth set
• Simple heuristic outperforms various text-processing algorithms
• An ABI student’s research context assignment will apply this to
Fresnel Forms
• Resulting Fresnel Forms makes a better default interface
• Especially for Wikipedia, albeit with chicken-egg paradox
• Falco Paul’s BPM&IT Master’s thesis
Pagina 9
10. Default Form
Pagina 10
• Order same as browser
• Shows all properties
– Browser only those with values
• Input fields special for data types
• Cardinality min/max =1
– Optional or mandatory
– List or single
• Autocompletion to class members
15. Edited browser
• Property order easy to change
• CSS
– Fits in Fresnel standard
– <div>-based better than table
• “Awards” is more page link than data
annotation
• Maybe with SPARQL queries
– Age calculation
– Honorific acronyms
• Ordering of multiple values works
– But via the wiki code
– Not via Semantic Web
Pagina 15
Wikipedia Fresnel Forms, edited
17. That’s fine for one infobox, but what
about all the others*?
• Fresnel Forms scales to process the entire DBpedia ontology
– Default GUI display appears in a few minutes
– Fresnel generation takes about a half hour
– Protégé on special server makes wiki in about an hour
• The new, improved Wikipedia interface is right here on my laptop
– Jimmy Wales just needs to import the wiki XML
– And install a few Semantic MediaWiki extensions
– Existing infoboxes share same foundational syntax
• Wikibots can automate some simple cleanup
• And/or modified existing infobox templates can map to new ones
– DBpedia ontology needs to be up-to-date
– Default interface could use some tailoring
Pagina 17
* ~3992 from Fresnel Forms algorithm applied to the DBpedia ontology
18. Mapping SW to SMW
Identifier
Prefix
Namespace (2ary level)
Ontology (2ary level)
Source URI (2ary level)
New sublevel
Default Frensel
Cascading Fresnel
Property
Category
Data display table/template
Form for data entry
owl:oneOf
Placed
Un- Removed
Sorted
owl:ObjectProperty
owl:DataProperty
owl:AnnotationProperty
:Boolean
:uri
:image
:externalLink String
In separate inverse property
With same property
Helps user register self
mandatory SF
min
min
Class
Any of the classes
Class intersection
Status:
autocomplete on category=...
SF
Pulldown shows pages from
Key
implemented Planned
Tools:
MW
MediaWiki,
SMW
Semantic MediaWiki,
SF
Semantic Forms,
OWF
OWF-only
1
:string, :normalizeString, :XMLLiteral, :Name, :token, :NMTOKEN, :NCName,
2
:gYearMonth, :gMonthDay, :gDay, :gMonth
3
:double, :float, :int, :integer, :long, :short, :negativeInteger, :positiveInteger, :nonPositiveInteger, :nonNegativeInteger, :unsignedLong, :unsignedInt, :unsignedShort
Union of classes
Multiple classes autocomplete
SF
Disjointness Unique name assumption for wiki page names SMW
owl:
RDFS-Plus
Chains
Cardinality
= 1
Values
User must enter exactly one
max
User cannot enter more than one
> 1
by default not User can enter more than one
User must enter at least given number
Default User can enter any number without restrictions
Set
Inrange
Single class
:FunctionalProperty
Data entry prevents duplication of keys
OWF:InverseFunctionalProperty
:hasKey
Equiv
:DataRange w/ :oneOf
[[Allows value::...]] SMW
User selects from fixed values
:allValuesFrom
autocomplete on category=…
SF
Pull down list shows current pages in target class(es)
:someValuesFrom #arraymap/list SF
repeated fields SF
by default by default not
User must enter something
Template also shows
incoming links:SymmetricProperty
:TransitiveProperty Chained query or assignment
SMW Template shows all pages in chain with property
:sameAs
All data and content put on unified page on wiki OWF
:inverseOf
Inverse property query
SMW
:EquivalentClass
:EquivalentProperty
:hasValue
#forminput:
SF Form for new member of
class has prefilled valuescurrent user as property value
restricted
SF User cannot change value
Key
owl:oneOf owf:oneOf [[Allows value::...]] SMW User selects from fixed values
owf:datatype Geographic coordinate, Code, Temperature Proper entry and display for given data type
:URI
:value
URL
showsas
Linked URL text
MW
Fresnel not automatically generated
from ontology
Image
MW
Image itself appears directly
Unlinked URL text
SMW
:language, date parts
2
:date(Time)
Date Form for entering date components and displayed as date
:time
:Boolean Boolean Select from two values
[[Allows value::...]]
SMW
User selects from fixed values
numeric
3
Number Entered and displayed as number
:gYear
:subPropertyOf
[[Subproperty of::...]] on property page SMW
Queries using property also recognize superproperties
Grouped together on forms and templates by default OWF
:rangevalueis
Class
autocomplete on category=...
SF
Pull down list shows current pages in target class(es)
[[Has default form::...]] on property
SF
Clicking to new pages leads to given form for data entry
[[Hastype::...]]
SMW
Page
Entered as wiki page name
Default w/o
:range
Links to wiki page
String
Entered and displayed as unlinked string
Literal
owf:datatype
xsd:
textual
1
:Lens
Category:... MW
, also: [[Category:...]] in template MW
Template:... MW
(if domain)
:domain
:showProperties
Asssign property in template
OWF
Properties in template and
forms are
Fresnel not automatically generated
from ontology
[[Category:...]] on individuals
MW
:sub-
:subClassOf
[[Category:...]] on category page
MW
Wiki and queries recognize as subcategory
Nested form access
OWF
:hideProperties
:showProperties rdf:List Sort properties in template
OWF
:mergeProperties
:alternateProperties
Template row queries multiple properties for one display
SF
Values from muliiple properties display as if from one
rdfs:
rdf:
:type [[Category:]] MW
Wiki page is member of given category
Containers :member in :showProperties #arraymap/list
SF
User can enter sorted list as comma-delimited
Form:...
SF
(if domain)
:classLensDomain [[Has default form::...]] on category
SF
Clicking to new pages leads to given form for data entry
Check box to assign classes if not domain
OWF
:Property
Page
Property:
SMW
Recognized in wiki data
system as
:Class
CSS
Psuedo-classes
CSS
MW
Link style
MW
:containerStyle
For template
and form tabel
SF
Whole table
:resourceStyle
Row
Multiple
:propertyStyle Single
:labelStyle
Cell
Left
:valueStyle Right , class=
SF
for forms
Text
rdfs:label
skos:prefLabel
rdfs:comment Mouseover on label
OWF
, content on page
OWF
Shows description
xml:lang Selection of text display from user for label, comment, etc. Adapts language to user
Delimiters Additional content delimiter=
SF
Put text: before, after, between, starting, ending, if empty
OWF
rdfs:isDefinedBy
owl:imports
Loaded as part of ontology to process
OWF
rdfs:seeAlso Link from page for property or category
OWF
Fragment identifier
:label Pagename
MW
, Label on form & template
OWF
Labels for property and class on templates and forms
Ontology Fresnel MediaWiki and extensions Description
URIs
Whole [[EquivalentURI::...]]
SMW
Ontology URI's used in RDF export
Foundation
Namespace
Identifier/prefix specs
OWF [[Imported from::...]]
SMW
Wiki page name prefixes
MW
Secondary prefix for class and property page names
Each gets own template and form
for domainless properties
OWF
Form and template for
general properties from ...
Wiki page name
namespace has levels
owl:Thing
:allProperties
Top level form and template
:hideProperties
owl:Ontology
19. Identifier
Prefix
Namespace (2ary level)
Ontology (2ary level)
Source URI (2ary level)
New sublevel
Default Frensel
Cascading Fresnel
Status:
Ontology Fresnel MediaWiki and extensions Description
URIs
Whole [[EquivalentURI::...]] SMW
Ontology URI's used in RDF export
Foundation
Namespace
Identifier/prefix specs OWF [[Imported from::...]] SMW
Wiki page name prefixes MW
Secondary prefix for class and property page names
Each gets own template and form
for domainless properties OWF
Form and template for
general properties from ...
Wiki page name
namespace has levels
owl:Thing
:allProperties
Top level form and template
:hideProperties
owl:Ontology
rdfs:isDefinedBy
owl:imports
Loaded as part of ontology to process OWF
rdfs:seeAlso Link from page for property or category OWF
Fragment identifier
:label Pagename MW
, Label on form & template OWF
Labels for property and class on templates and forms
Text
rdfs:label
skos:prefLabel
rdfs:comment Mouseover on label OWF
, content on page OWF
Shows description
xml:lang Selection of text display from user for label, comment, etc. Adapts language to user
Delimiters Additional content
delimiter= SF
Put text: before, after, between, starting, ending, if empty OWF
CSS
Psuedo-classes
CSSMW
Link style MW
:containerStyle
For template
and form tabel
SF
Whole table
:resourceStyle
Row
Multiple
:propertyStyle Single
:labelStyle Cell Left
:valueStyle Right , class= SF
for forms
Key
implemented Planned
Tools: MW
MediaWiki, SMW
Semantic MediaWiki, SF
Semantic Forms, OWF
OWF-only
1
:string, :normalizeString, :XMLLiteral, :Name, :token, :NMTOKEN, :NCName, 2
:gYearMonth, :gMonthDay, :gDay, :gMonth
3
:double, :float, :int, :integer, :long, :short, :negativeInteger, :positiveInteger, :nonPositiveInteger, :nonNegativeInteger, :unsignedLong, :unsignedInt, :unsignedShort
20. Property
Category
Data display table/template
Form for data entry
owl:oneOf
Placed
Un- Removed
Sorted
owl:ObjectProperty
owl:DataProperty
owl:AnnotationProperty
:Boolean
:uri
:image
:externalLink String
Status:
Ontology Fresnel MediaWiki and extensions Description
rdfs:
rdf:
:type [[Category:]] MW
Wiki page is member of given category
Containers :member in :showProperties #arraymap/list SF
User can enter sorted list as comma-delimited
Form:... SF
(if domain)
:classLensDomain [[Has default form::...]] on category
SF
Clicking to new pages leads to given form for data entry
Check box to assign classes if not domain OWF
:Property
Page
Property:
SMW
Recognized in wiki data
system as
:Class
:Lens
Category:... MW
, also: [[Category:...]] in template MW
Template:... MW
(if domain)
:domain
:showProperties
Asssign property in template OWF
Properties in template and
forms are
Fresnel not automatically generated
from ontology
[[Category:...]] on individuals MW
:sub-
:subClassOf [[Category:...]] on category page
MW
Wiki and queries recognize as subcategory
Nested form access OWF
:hideProperties
:showProperties rdf:List Sort properties in template OWF
:mergeProperties
:alternateProperties Template row queries multiple properties for one display SF
Values from muliiple properties display as if from one
:subPropertyOf [[Subproperty of::...]] on property page SMW
Queries using property also recognize superproperties
Grouped together on forms and templates by default OWF
:rangevalueis
Class
autocomplete on category=... SF
Pull down list shows current pages in target class(es)
[[Has default form::...]] on property
SF
Clicking to new pages leads to given form for data entry
[[Hastype::...]]SMW
Page
Entered as wiki page name
Default w/o
:range
Links to wiki page
String
Entered and displayed as unlinked string
Literal
owf:datatype
xsd:
textual1
:language, date parts
2
:date(Time)
Date Form for entering date components and displayed as date
:time
:Boolean Boolean Select from two values
[[Allows value::...]]
SMW
User selects from fixed values
numeric3
Number Entered and displayed as number
:gYear
owl:oneOf owf:oneOf [[Allows value::...]] SMW User selects from fixed values
owf:datatype Geographic coordinate, Code, Temperature Proper entry and display for given data type
:URI
:value
URL
showsas
Linked URL text MW
Fresnel not automatically generated
from ontology
Image
MW
Image itself appears directly
Unlinked URL text SMW
Key
implemented Planned
Tools: MW
MediaWiki, SMW
Semantic MediaWiki, SF
Semantic Forms, OWF
OWF-only
1
:string, :normalizeString, :XMLLiteral, :Name, :token, :NMTOKEN, :NCName, 2
:gYearMonth, :gMonthDay, :gDay, :gMonth
3
:double, :float, :int, :integer, :long, :short, :negativeInteger, :positiveInteger, :nonPositiveInteger, :nonNegativeInteger, :unsignedLong, :unsignedInt, :unsignedShort
21. In separate inverse property
With same property
Helps user register self
mandatory SF
min
min
Class
Any of the classes
Class intersection
Status:
Ontology Fresnel MediaWiki and extensions Description
Template also shows
incoming links:SymmetricProperty
:TransitiveProperty Chained query or assignment SMW Template shows all pages in chain with property
:sameAs
All data and content put on unified page on wiki OWF
:inverseOf
Inverse property querySMW
:EquivalentClass
:EquivalentProperty
:hasValue
#forminput: SF Form for new member of
class has prefilled valuescurrent user as property value
restricted
SF User cannot change value
Key
:FunctionalProperty
Data entry prevents duplication of keys
OWF:InverseFunctionalProperty
:hasKey
Equiv
:DataRange w/ :oneOf
[[Allows value::...]] SMW
User selects from fixed values
:allValuesFrom
autocomplete on category=…
SF
Pull down list shows current pages in target class(es)
:someValuesFrom #arraymap/list SF
repeated fields SF
by default by default not
User must enter something
Cardinality
= 1
Values
User must enter exactly one
max
User cannot enter more than one
> 1
by default not User can enter more than one
User must enter at least given number
Default User can enter any number without restrictions
Set
Inrange
Single class
autocomplete on category=...
SF
Pulldown shows pages from
Key
implemented Planned
Tools: MW
MediaWiki, SMW
Semantic MediaWiki, SF
Semantic Forms, OWF
OWF-only
1
:string, :normalizeString, :XMLLiteral, :Name, :token, :NMTOKEN, :NCName, 2
:gYearMonth, :gMonthDay, :gDay, :gMonth
3
:double, :float, :int, :integer, :long, :short, :negativeInteger, :positiveInteger, :nonPositiveInteger, :nonNegativeInteger, :unsignedLong, :unsignedInt, :unsignedShort
Union of classes
Multiple classes autocomplete SF
Disjointness Unique name assumption for wiki page names SMW
owl:
RDFS-Plus
Chains
25. Further with Fresnel Forms
• Implement the pink bits of the spreadsheet table
– Catching/keeping up with Semantic Forms (and vice versa ;)? )
• Formalize mapping OWL to SMW & Semantic Forms
– As Fresnel extension in OWL
• My research
– Business Rules
– Semantic Web context
– My faculty: Enterprise architecture, Business Intelligence
• With you?
– Case study for BPM&IT Masters student research
– Code on GitHub
– Project context
Pagina 25
26. Thanks to
• ABI (Bachelors Thesis) Team 28
– Thomas Brenninkmeijer
– Tim Zwanenberg
– Supervisor: Harold Pootjes
• ABI (Bachelors Thesis) Team 30
– Alex Mekkering, Protégé guru
– Teun Theunissen, Semantic Web guru
– Joop van de Heijning, SMW guru
– Supervisor: Rik Bos
Pagina 26